public class Dog extends Animal{
    public double weight;

    //代码块执行顺序：
    //父静态->子静态->父实例->父构造->子实例->子构造
    //实例化多个对象的情况下，静态的只执行一次
    static{
        //System.out.println("Dog类的静态代码块被执行了。");
    }
    {
        //System.out.println("Dog类的实例代码块被执行了。");
    }
    public Dog(String name, int age){
        super(name, age);//子类在构造完成之前，先要完成父类的构造
        //注意：super和this都不能在静态方法中使用，因为静态的是不依赖于对象的
        //在构造方法中调用父类或当前类的构造方法时，必须是构造方法的第一条语句，并且不能和this()同时存在.构造方法第一句，不是super就是this，两者只能选其一
        //System.out.println("Dog类的带2个参数的构造方法被执行了。");
    }

    public void bark(){
        System.out.println(this.name + " 正在汪汪叫...");
    }

    // ***** 继承 *****
    //如果同名，优先访问子类自己的；如果子类没有，就去父类找
    public void method(){
        System.out.println(this.weight);
        System.out.println(super.age);
        System.out.println(super.name);
    }
}

